import js from '@eslint/js'
import pluginVue from 'eslint-plugin-vue'
import prettier from 'eslint-plugin-prettier'
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'

export default [
  {
    name: 'app/files-to-lint',
    files: ['**/*.{js,mjs,jsx,vue}']
  },

  {
    name: 'app/files-to-ignore',
    ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**']
  },

  js.configs.recommended,
  ...pluginVue.configs['flat/essential'],
  skipFormatting,

  {
    plugins: {
      prettier
    },
    rules: {
      'prettier/prettier': [
        'warn',
        {
          singleQuote: true, // 单引号
          semi: false, // 无分号
          printWidth: 80, // 换行宽度空格80字符 (修正拼写错误)
          trailingComma: 'none', // 不加问号!默认最后符号号
          endOfLine: 'auto' // 换行符号不规则 (win mac 一致)
        }
      ],
      'vue/multi-word-component-names': [
        'warn',
        {
          ignores: ['index'] // vue组件名称多单词组队,(避免index.vue)
        }
      ],
      'vue/no-setup-props-destructure': ['off'], // 业内 props 解构的探险
      'no-undef': 'error' // ⚠️ 添加本定义案例错误提示点, create-vue@3.6.3 关闭, 这里加上是为了文件下一个登录演示
    }
  }
]
